﻿<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>Games - Legacy</title>
		<link href="css/game.css" media="all" rel="stylesheet" type="text/css">
		<script src="js/jquery-1.11.0.min.js"></script>
		<script src="/socket.io/socket.io.js"></script>
		<script src="js/three.js"></script>
		<script src="js/tween.min.js"></script>
		<script src="js/threegt.js"></script>
	</head>
	<body>
		<script>
			var socket = io.connect('http://localhost:8080');
			var pseudo = prompt('Quel est votre pseudo ?');
			document.title = pseudo + ' - ' + document.title;
			var game = new GT.Game(pseudo, socket);
			$(game).ready(function() {
				game.loadTerrain('models/map1.js', 'textures/map1.png');
				game.loadPlayer('models/male.js', {body: 'textures/male_texture.png', eyes: 'textures/green_eye.png'});
				var quete1 = new GT.Quete('Pouvez-vous faire sauter ?', 'TODO');
				var quete2 = new GT.Quete('Pouvez-vous faire demi-tour ?', 'TODO');
				var quete3 = new GT.Quete('Pouvez-vous partir ?', 'TODO');
				var quete4 = new GT.Quete('Pouvez-vous aller voir IA1 ?', 'TODO');

				var ia1 = new GT.IA(game, 'IA1', 'models/male.js', 
					{body: 'textures/male_texture.png', eyes: 'textures/green_eye.png'}, quete1, 
					{x: 500, y: 0, z: 50}, game.chatbox);
				ia1.setDestination(new THREE.Vector3(200, 0, 200));

				var ia2 = new GT.IA(game, 'IA2', 'models/male.js', 
					{body: 'textures/male_texture.png', eyes: 'textures/green_eye.png'}, quete2,
					{x: 100, y: 0, z: 20}, game.chatbox);
				ia2.setDestination(new THREE.Vector3(-200, 0, -200));
				
				var ia3 = new GT.IA(game, 'IA3', 'models/male.js', 
					{body: 'textures/male_texture.png', eyes: 'textures/green_eye.png'}, quete3,
					{x: 0, y: 0, z: -300}, game.chatbox);
				ia3.setDestination(new THREE.Vector3(200, 0, -200));

				var ia4 = new GT.IA(game, 'IA4', 'models/male.js', 
					{body: 'textures/male_texture.png', eyes: 'textures/green_eye.png'}, quete4,
					{x: -200, y: 0, z: 0}, game.chatbox);
				ia4.setDestination(new THREE.Vector3(-200, 0, 200));
				
				game.addIA(ia1);
				game.addIA(ia2);
				game.addIA(ia3);
				game.addIA(ia4);
			});
			/** Fermeture de la fenêtre : déconnexion.*/
			$(window).unload(function() {
				socket.emit('sortie_joueur', pseudo);
			});
			/** Envoi de l'information de l'arrivée du nouveau joueur. */
			socket.emit('nouveau_joueur', pseudo);
			/** Quand un nouveau joueur se connecte, on affiche l'information sur le chat. */
			socket.on('nouveau_joueur', function(datas) {
				game.newPlayer(datas.name, datas.model, datas.textures);
			});
			/** Quand un nouveau joueur se connecte, on affiche l'information sur le chat. */
			socket.on('sortie_joueur', function(name) {
				game.exitPlayer(name);
			});
			/** Chargement des joueurs présents avant la connection du joueur. */
            socket.on('joueurs', function(players) {
				game.loadPlayers(players);
			});
			/** Nouveau message sur le chat.*/
			socket.on('nouveau_message', function(data) {
				game.chatbox.write(data.pseudo, data.message);
			});
			/** Mise à jour de l'animation d'un autre personnage. */
			socket.on('animate_joueur', function(data) {
				if (game.otherPlayers) {
					game.otherPlayers[data.pseudo].setAnimation(data.animation);
				}
			});
			/** Mise à jour du déplacement d'un autre personnage. */
			socket.on('move_joueur', function(data) {
				if (game.otherPlayers) {
					game.otherPlayers[data.pseudo].move(new THREE.Vector3(data.x, data.y, data.z));
				}
			});
			/** Mise à jour de la rotation d'un autre personnage. */
			socket.on('rotate_joueur', function(data) {
				if (game.otherPlayers) {
					game.otherPlayers[data.pseudo].rotate(new THREE.Vector3(data.x, data.y, data.z));
				}
			});
		</script>
	</body>
</html>
